<?php
/**
 * 用户权限控制管理
 * 这个类是整个平台的用户权限管理基础类。禁止任何非用户权限管理的其他逻辑写入该类
 */
namespace logic;
abstract class Base{
    
    
    protected $CallUser; // 调用者对象
    public function __construct($CallUser=''){
        if( $CallUser ){
            if( !$CallUser instanceof \logic\user\User )  logicE('构造对象错误');
            $this->CallUser = $CallUser;
        }else{
            $Passport = \logic\user\Passport::getInstance();
            $this->CallUser = $Passport->checkLogin();
        }
    }
    
    /**
     * 获取当前操作者的角色
     */
    protected function getRole(){
        if( !$this->CallUser ) return '';
        return $this->CallUser->role;
    }
    
    /**
     * 获取当前操作者的用户id
     */
    protected function getUserId(){
        if( !$this->CallUser ) return 0;
        return $this->CallUser->userId;
    }
    
    /**
     * 获取当前操作对象的站点ID
     */
    protected function getSiteId(){
        if( $this->CallUser->role != 'site' ) return 0;   
        return  $this->CallUser->getSiteId();
    }
    
    /**
     * 获取当前操作者的对象
     */
    protected function getUser(){
        return $this->CallUser;
    }
}